package aplicacion.modelo;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.List;

public class Persistidor {
	//SERIALIZA LOS PUNTAJES DE MODO QUE QUE PUEDAN RECUPERAR LUEGO
	//Y NO SER MODIFICADOS POR HUMANOS
	public void serializarPuntaje(List<TipoPuntaje> listaPuntajeMaximoAPersistir){
		List<TipoPuntaje> listaPuntajeMaximo = listaPuntajeMaximoAPersistir;
		try {
			FileOutputStream fos = new FileOutputStream("puntaje.dat");
			ObjectOutputStream salida = new ObjectOutputStream(fos);
			salida.writeObject(listaPuntajeMaximo);
			salida.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}		
	}	
	//DESERIALIZA PARA RECUPERAR LOS DATOS.
	@SuppressWarnings("unchecked")
	public List<TipoPuntaje> deserializarPuntaje() throws IOException{
		List<TipoPuntaje> listaPuntaje = new ArrayList<TipoPuntaje>();
		try {
			FileInputStream is = new FileInputStream("puntaje.dat");
			ObjectInput oi = new ObjectInputStream(is);
			listaPuntaje = (List<TipoPuntaje>) oi.readObject();
			oi.close();		
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
		return listaPuntaje;	}
}
